package org.custom.spring.boot.datasource.entity.datasource;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

import static cn.hutool.core.text.CharSequenceUtil.EMPTY;

/**
 * 动态数据源选择实体类
 *
 * @author 李坤
 * @date 2022/3/31 17:38
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DynamicDatasourceSelection implements Serializable {
    /**
     * 数据源标识
     */
    private String dataSourceKey;

    /**
     * 当给定名称的数据源不存在时是否使用默认数据源
     */
    private boolean userDefaultDataSource = false;

    /**
     * 默认构造函数
     *
     * @param dataSourceKey 数据源名称
     */
    public DynamicDatasourceSelection(String dataSourceKey) {
        this.dataSourceKey = dataSourceKey;
    }

    /**
     * 获取默认实例对象
     *
     * @return 实例对象
     */
    public static DynamicDatasourceSelection getInstance() {
        return DynamicDatasourceSelection.builder().dataSourceKey(EMPTY).build();
    }
}
